// src/TestUI.js
// 主类：对外暴露组件方法的入口（如TestUI.button()、TestUI.dialog()）
export default class TestUI {
  /**
   * 支持 app.use(TestUI) 注册的静态方法（就是全局注册）
   * @param {import('vue').App} app Vue 应用实例
   * @param {Object} options 可选配置（如自定义组件前缀等）
   */
  static install(app, options = {}) {
    // 遍历所有已注册的分类（如 'form'、'feedback' 等）
    Object.keys(this).forEach(category => {
      const components = this[category];
      // 遍历分类下的所有组件方法
      Object.keys(components).forEach(componentName => {
        // 执行组件方法获取带配置的组件（使用默认配置）
        const component = components[componentName]();
        // 转换组件名为 kebab-case（如 myButton → my-button）
        const kebabCaseName = componentName.replace(/[A-Z]/g, '-$&').toLowerCase();
        // 全局注册组件
        app.component(kebabCaseName, component);
      });
    });
  }
}